
#if 0

#include <cassert>
#include <iostream>
using namespace std;

#include "tools/document/dform.h"
#include "tools/document/droot.h"

namespace tools{

    namespace{

        #include "tools/document/dtypedefs.h"

    }//namespace




//-----------------------------------------------------------------------
//    const FormRoot& FormRoot::View()const
//    {
//        cout << AboutMe()<<endl;
//        return *this;
//    }
//-----------------------------------------------------------------------
    FormRoot::FormRoot(const Str& name)
        :mData( ::std::make_shared<FormRootData>(name) )
    {}
//-----------------------------------------------------------------------
    Form& FormRoot::Open(const Str& name)
    {
        mData->mForms.emplace_back( ::std::make_shared<Form>(name, this) );
        return *(mData->mForms.back().get());
    }
//-----------------------------------------------------------------------
#if 0
    const Str& Form::GetName()const { return mData->mName; }

    Form& Form::Close()
    {
        if(mData->mParent)
            return *mData->mParent;
        return *this;
    }
    Form& Form::Close(const Str& tag)
    {
        if(!tag.empty())
            mData->mClose = tag;
        return Close();
    }
#endif
//-----------------------------------------------------------------------
#if 0
    Str Form::AboutMe()const { return AboutMe(0); }
    Str Form::AboutMe(const size_t d)const 
    {
        Str info = Deep(d) + mData->mName+'\n';
        for(const auto& i: mData->mContent)
            info+= i->AboutMe(d+1) +'\n';
        if(!mData->mClose.empty())
            info +=Deep(d) + mData->mClose;
        else
            info.pop_back();
        return info;
    }
#endif
//-----------------------------------------------------------------------
#if 0
    CPForm Form::Find(const Str& name)const
    {
        if(mData->mName==name)
            return shared_from_this();
        for(const auto& i: mData->mContent)
            if( CPForm p = i->Find(name) )
                return p;
        return CPForm();
    }
    PForm Form::Find(const Str& name)
    {
        if(mData->mName==name)
            return shared_from_this();
        for(const auto& i: mData->mContent)
            if( PForm p = i->Find(name) )
                return p;
        return PForm();
    }
#endif
//-----------------------------------------------------------------------


    


}//namespace tools





#endif